home *** CD-ROM | disk | FTP | other *** search
- #!/usr/bin/perl
- # This file was preprocessed, do not edit!
-
-
- sub usage {
- print STDERR <<EOF;
- Usage:
- debconf-show packagename [...] [--db=dbname]
- debconf-show --listowners [--db=dbname]
- debconf-show --listdbs
- EOF
- exit(1);
- }
-
-
- use strict;
- use warnings;
- use Debconf::Db;
- use Debconf::Template;
- use Debconf::Question;
- use Getopt::Long;
-
- my $db='';
- my $listowners=0;
- my @packages;
- my $listdbs=0;
-
- GetOptions(
- "db=s" => \$db,
- "listowners" => \$listowners,
- "listdbs" => \$listdbs,
- ) || usage();
-
- unless ($listowners or $listdbs) {
- @packages=@ARGV;
- usage() unless @packages;
- }
-
- Debconf::Db->load(readonly => 'true');
-
- my %drivers = %Debconf::DbDriver::drivers;
- my $conf = Debconf::Config->config;
-
- sub tree {
- my $node=shift;
- my $string=shift || "";
- my $driver = Debconf::DbDriver->driver($node);
- my $name = $driver->{name};
-
- $string = $string.$name;
- print $string."\n";
-
- if ($driver->isa("Debconf::DbDriver::Stack")) {
- $string=$string.'/';
- map { tree($_->{name},$string) } @{$driver->{stack}};
- }
- }
-
- if ($db) {
- my $driver = $drivers{$db};
- die $db.": unknown database" unless defined($driver);
- $Debconf::Db::config = $driver;
- }
-
- my $qi=Debconf::Question->iterator;
-
- if ($listdbs) {
- tree($conf);
- }
- elsif (@packages) {
- while (my $q=$qi->iterate) {
- foreach my $package (@packages) {
- if (grep { $package eq $_} split(/, /, $q->owners)) {
- if ($q->flag("seen") eq 'true') {
- print "* ";
- }
- else {
- print " ";
- }
- print $q->name.":";
- if ($q->type eq 'password') {
- print " (password omitted)";
- }
- elsif (length $q->value) {
- print " ".$q->value;
- }
- print "\n";
- }
- }
- }
- }
- elsif ($listowners) {
- my %seen;
- while (my $q=$qi->iterate) {
- foreach (split(/, /, $q->owners)) {
- unless ($seen{$_}) {
- print "$_\n";
- $seen{$_}=1;
- }
- }
- }
- }
-
-